package com.wzq.design.business.system.menu.dto;

import com.wzq.design.business.system.menu.entity.SysMenu;
import com.wzq.ssm.parent.base.dto.BaseTreeDto;
import com.wzq.ssm.parent.util.EntityUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @author wangzhiqiang
 * @since 2023/6/28 16:00
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class SysMenuDto extends BaseTreeDto<SysMenuDto> {


    /**
     * 菜单名称
     */
    private String name;
    /**
     * 菜单类型(menu:菜单 catalog:目录 extLink:外链 button:按钮)
     */
    private SysMenu.MenuTypeEnum type;
    /**
     * 路由路径(浏览器地址栏路径)
     */
    private String path;
    /**
     * 组件路径(vue页面完整路径，省略.vue后缀)
     */
    private String component;
    /**
     * 权限标识
     */
    private String perm;
    /**
     * 显示状态(1-显示;0-隐藏)
     */
    private Integer visible;
    /**
     * 排序
     */
    private Integer sort;
    /**
     * 菜单图标
     */
    private String icon;
    //跳转路径
    private String redirect;
    /**
     * 【目录】只有一个子路由是否始终显示(1:是 0:否)
     */
    private Integer alwaysShow;
    /**
     * 【菜单】是否开启页面缓存(1:是 0:否)
     */
    private Integer keepAlive;


    public static SysMenuDto fromDb(SysMenu sysMenu) {
        return EntityUtil.castDtoToModel(sysMenu, SysMenuDto.class);
    }

    public static SysMenu toDb(SysMenuDto sysMenuDto) {
        return EntityUtil.castDtoToModel(sysMenuDto, SysMenu.class);
    }
}
